嗨,今天是鐵人賽的第27天啦!
今天要介紹的是一個簡單的預測法:線性迴歸(linear regression)
!
先來看看什麼是線性迴歸?
Finding the curve that best fits your data is called regression, and when that curve is a straight line, it's called linear regression.
找出符合資料規律的直線,就叫線性迴歸。
在線性回歸中,數據使用線性預測函數來建模,未知的模型參數也是通過數據來估計。這些模型被叫做線性模型。
最常用的線性回歸建模是給定X值的y的條件均值是X的仿射函數。
線性回歸模型可以是一個中位數或一些其他的給定X的條件下y的條件分布的分位數作為X的線性函數表示。
今天我們一樣會使用sklearn
來做線性迴歸(linear regression)!
首先import LinearRegression,因為我們會繪圖所以會用到matplotlib.pyplot
也引入:
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from sklearn import datasets
在sklearn中很方便的是它內涵豐富的函數可以使用,所以要建立隨機
資料只需要:
X,y = datasets.make_regression(n_samples=200,n_features=1,n_targets=1,noise=10)
使用make_regression()
方法,建立200個樣本(samples),只有一種特徵(features)
和一種標籤類別(label),我們將noise
設為10,這樣資料會比較分散一點(上述參數都可以自行設定)。
可以到 sklearn.datasets.make_regression看內部更多參數的使用。
我們將剛剛建立的資料繪成散點圖:
plt.scatter(X,y,linewidths=0.1)
plt.show()
會看到散點圖:
隨機
的,所以看到的圖可能會稍微有所不同!接下來要做線性迴歸預測了!
使用線性迴歸會用到sklearn中的LinearRegression函數
建立一個模型model
為線性迴歸模型:
model = LinearRegression()
這裡我們使用預設就好的不改變內部的參數,當然你可以到sklearn LinearRegression文檔內看更多關於sklearn LinearRegression如何使用。
將資料放進模型內訓練:
model.fit(X,y)
因為要再繪出預測的資料圖,所以將預測資料放到predict變數內:
predict = model.predict(X[:200,:])
繪圖:
plt.plot(X,predict,c="red")
plt.scatter(X,y)
plt.show()
中間的紅色線就是我們用LinearRegression找出的線,這樣就完成線性迴歸預測了。
今天說明了線性迴歸LinearRegression,用sklearn快速建立隨機的迴歸資料並且分析。
更多參考資料:
線性迴歸 維基百科
sklearn LinearRegression
sklearn.datasets.make_regression